package com.qire.common.dal.base;

import android.os.SystemClock;

/**
 * 服务器同步时间计时器
 */
public class ServiceTimer {

    private static long serviceTime;
    private static long osRunTime;

    private ServiceTimer() {}

    /**
     * 同步服务器时间
     * @param serviceTime 服务器时间
     */
    public static void syncServiceTime(long serviceTime) {
        // 防止非法同步，由于接口返回的时间戳并不一定存在，或者因为其他原因导致服务器时间为获取到，此时同步可能造成问题
        if(serviceTime > 0) {
            ServiceTimer.osRunTime = SystemClock.elapsedRealtime();
            ServiceTimer.serviceTime = serviceTime;
        }
    }

    /**
     * 服务器当前时间
     * @return 返回通过系统运行时间计算服务器时间
     */
    public static long serviceCurrentTime() {
        // 防止未同步成功的时间戳获取可能导致业务逻辑存在问题
        if(serviceTime > 0) {
            return serviceTime + (SystemClock.elapsedRealtime() - osRunTime);
        } else {
            return System.currentTimeMillis();
        }
    }

}
